package com.example.util;

import java.net.InetAddress;
import java.util.ArrayList;
import java.util.List;

public class Host {
    private static List<String> codeList = null;

    public static List<String> getList() {
        if (codeList == null) {
            codeList = new ArrayList<String>();
            codeList.add("AMR");
            codeList.add("AMS");
            codeList.add("APR");
            codeList.add("AZR");
            codeList.add("BAN");
            codeList.add("BEI");
            codeList.add("BRA");
            codeList.add("CUP");
            codeList.add("DUB");
            codeList.add("EMR");
            codeList.add("FRE");
            codeList.add("GCP");
            codeList.add("GDL");
            codeList.add("HOU");
            codeList.add("JBS");
            codeList.add("KOR");
            codeList.add("COL");
            codeList.add("MAI");
            codeList.add("MUN");
            codeList.add("NRM");
            codeList.add("OCI");
            codeList.add("OKC");
            codeList.add("PAL");
            codeList.add("PUN");
            codeList.add("RRK");
            codeList.add("SBN");
            codeList.add("SGS");
            codeList.add("SHA");
            codeList.add("SHE");
            codeList.add("SHK");
            codeList.add("SPR");
            codeList.add("SRC");
            codeList.add("TWN");
            codeList.add("TEP");
            codeList.add("TLV");
            codeList.add("TOK");
            codeList.add("SGW");
            codeList.add("WUX");
        }
        return codeList;
    }

    public static String getId(InetAddress addr) {
        String hostName = addr.getHostName().toUpperCase();
        String id = "";
        if (Host.getList().contains(hostName.substring(0, 3)) && "-".equals(String.valueOf(hostName.charAt(3)))) {
            hostName = hostName.substring(5);
            id = hostName.substring(0, 6);
        } else {
            id = hostName;
        }
        if (id.isEmpty()) {
            id = "unknown";
        }
        return id;
    }
}
